/******************************************************************************
 * Copyright (C) 2012 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.property;

import java.util.Properties;

import com.code.common.utils.StringUtils;

/**
 * 配置辅助类
 *
 * @author 陈大周
 * @since JDK1.6
 * @version 2012-11-28 陈大周 新建
 */
public final class ParamConfigHelper extends BaseConfigHelper {

    private static Properties objProps = null;

    /**
     * 私有构造方法
     */
    private ParamConfigHelper() {
        super(ResourceUtils.RESOURCE_FILE);
        String strResourceFile ="filename";
        if (strResourceFile.length() > 0) {
            objProps = super.getResources(strResourceFile);
        } else {
            objProps = super.getResources();
        }
    }

    /**
     * 读取class目录下的配置文件
     *
     * @param strkey [] 查询Map的key值
     * @return Map<String, String>
     */
    public static Properties getResourceName() {
        if (objProps == null) {
            new ParamConfigHelper();
        }
        return objProps;
    }

    /**
     * 根据key值获取资源文件的value
     *
     * @param strResourceKeyParam 资源文件的key
     * @return 资源文件的value
     */
    public static String getResourceParameter(String strResourceKeyParam) {
        String strParam = ParamConfigHelper.getResourceName().getProperty(strResourceKeyParam);
        return strParam != null && strParam.length() > 0 ? strParam : "";
    }


    /**
     * 根据key值获取资源文件的value
     *
     * @param strResourceKeyParam 资源文件的key
     * @return 资源文件的value
     */
    public static int getIntResourceParameter(String strResourceKeyParam,int defaultValue) {
        String strParam = ParamConfigHelper.getResourceName().getProperty(strResourceKeyParam);
        if( StringUtils.isEmpty(strParam)  ){
        	return defaultValue ;
        }

        try{
            return Integer.valueOf(strParam).intValue();
        }
        catch(NumberFormatException ex){
        	return defaultValue;
        }
    }
}